Web gateway multi-carrier support

ABSTRACT

The present invention provides multi-carrier support in a wireless Internet gateway (WIG) that allows the WIG to send messages to any number of ‘peer’ gateways on the Internet in a conveniently reconfigurable manner. The disclosed embodiments include a ‘Message Distribution Center’ (MDC), through which short messages can be routed to the gateways of other wireless carriers based on carrier formats stored in an abstracted carrier format table. The conventional technique of separate classes written for each carrier is replaced by entries in a look-up table format, to provide a more easily adaptable wireless gateway. Thus, occasional updates of the carrier format table need only be updated, rather than the wireless Internet gateway program, reducing down time for updates, reducing the complexity of updates, and improving the reliability of a wireless Internet gateway in the face of changes for one or more carriers in a wireless network.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 14/619,399, filed 11 Feb. 2015; which is a continuation of U.S. patent application Ser. No. 11/902,714, filed 25 Sep. 2007 (now U.S. Pat. No. 9,002,951, issued 7 Apr. 2015); which is a continuation of U.S. patent application Ser. No. 09/716,944, filed 22 Nov. 2000 (now U.S. Pat. No. 7,519,654, issued 14 Apr. 2009), all of which are incorporated herein in their entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates generally to wireless carriers, Internet service providers (ISPs), and information content delivery services/providers. More particularly, it relates to gateways between a wireless network and the Internet for routing messages to wireless devices.

2. Background of Related Art

Short Message Service Centers (SMSCs) deliver short messages through wireless networks. Typically they operate on highly valuable server platforms that are protected deep within a wireless carrier's network, and communicate via specialized protocols.

FIG. 5 shows a conventional gateway providing Internet access to a wireless network through a short message service center (SMSC).

In particular, as shown in FIG. 5, a gateway 900 implemented in a wireless network translates between HTTP protocol messages, SMPP protocol messages, and/or email messages from wireless devices serviced by one Carrier's wireless network 130 via an SMSC 120, and devices serviced by another Carrier's wireless network through another gateway 971 on the Internet 190. Conventional gateway 900 architecture provides a communication path between fixed protocol types, e.g., between HTTP protocol messages and SMPP protocol messages, based on known formats of destination Carriers. Separate gateway application programming interfaces (APIs) are developed to communicate with other protocol types, and those separate API's are conventionally ‘hard-coded’ into the gateway 900.

For instance, to pass communications from devices in the wireless network 130 serviced by a first carrier to devices in another wireless network serviced by another carrier, the gateway 900 formats the messages in a way which is known to conform to the needs of the other carrier using the other gateway 971.

Unfortunately, as any particular wireless carrier's resources change, software updates may be required in a transmitting gateway to conform to the format of the newly changed receiving carrier's gateway. This requires the sending gateways to undergo a tremendous amount of development work as a result of the addition of new network elements, particularly wireless network elements.

In conventional systems, every carrier to which a short message may be transmitted to has its own class file. Thus, if there are, e.g., one hundred (100) carriers accessible from a particular wireless network, then the gateway application code will necessarily include, e.g., one hundred (100) class files, one for each carrier.

Of course, as time goes on, some new carriers may enter a wireless network, some existing carriers may change configurations, and still other carriers may leave a wireless network. Each of these events relating to any of the carriers requires new or updated source code (e.g., new java code) in the sending gateway relating to a change in the relevant class file. This results in additional effort and/or down time in the gateways of one or all gateways between wireless networks and the Internet to accommodate the changes and/or additions to adjust the relevant application program class files.

There is a need for a technique and architecture to provide a unified means for routing message destinations to the gateways of other wireless carriers.

SUMMARY OF THE INVENTION

In accordance with the principles of the present invention, a short message distribution center comprises an incoming message queue, a carrier format table, and a destination link. The carrier format table comprises information relating to a plurality of different carrier formats each relating to a destination gateway of a relevant destination carrier.

A method of abstracting destination carrier format from a wireless Internet gateway in accordance with yet another aspect of the present invention comprises receiving an incoming short message. Destination carrier information is retrieved from the incoming short message. Destination carrier format information is retrieved from a carrier format table based on a match to the retrieved destination carrier information.

BRIEF DESCRIPTION OF THE DRAWINGS

Features and advantages of the present invention will become apparent to those skilled in the art from the following description with reference to the drawings, in which:

FIG. 1 shows an exemplary message distribution center in a wireless gateway including a carrier format table and destination link, in accordance with the principles of the present invention.

FIG. 2 shows an exemplary overview of message flow relating to the message distribution center shown in FIG. 1.

FIG. 3 shows an exemplary destination link and related modules of a wireless gateway such as that shown in FIG. 1.

FIGS. 4a through 4c show an exemplary implementation of the destination link and related modules shown in FIG. 3.

FIG. 5 shows a conventional gateway providing Internet access to a wireless network through a short message service center (SMSC).

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

Multi-Carrier support is a feature of a wireless Internet gateway (WIG) that allows the WIG to send messages to any number of ‘peer’ gateways on the Internet in a conveniently reconfigurable manner. In accordance with the principles of the present invention, the WIG includes a ‘Message Distribution Center’ (MDC), through which short messages can be routed to the gateways of other wireless carriers based on carrier formats stored in an abstracted carrier format table. The conventional technique of separate classes written for each carrier is replaced by entries in a look-up table format, to provide a more easily adaptable wireless gateway.

Thus, in accordance with the principles of the present invention, occasional updates of the carrier format table need only be updated, rather than the wireless Internet gateway program, reducing down time for updates, reducing the complexity of updates, and improving the reliability of a wireless Internet gateway in the face of changes for one or more carriers in a wireless network.

A suitable wireless Internet gateway is disclosed in co-owned U.S. application Ser. No. 09/630,762, filed Aug. 2, 2000, entitled “Wireless Internet Gateway”, to Richard Smith, the entirety of which is expressly incorporated herein by reference.

The present invention enables a WIG to communicate with the gateways of other carriers (particularly other wireless carriers) having different and occasionally changing kinds of message destinations using different and occasionally changing protocols.

In accordance with the principles of the present invention, information regarding other carriers (i.e., destinations) may be added, changed, and/or removed from a wireless short messaging system network by simply modifying a configuration property file relating to message formats for each other carrier, rather than the conventional technique of providing each carrier with its own class, avoiding the conventional need to reprogram relevant sending gateways.

FIG. 1 shows an exemplary message distribution center in a wireless gateway including a carrier format table and destination link, in accordance with the principles of the present invention.

In particular, as shown in FIG. 1, short messages of various protocols are received by respective protocol receivers 130-132, and fed into a message queue 120. The various protocol receivers may relate, e.g., to email, HTTP get, etc. A message distribution center 102 portion of a wireless Internet gateway receives the queued short messages from the message queue 120, e.g., on a first come-first served basis.

The queued messages are interrogated by the message distribution center 102 to determine their destination carrier. One appropriate interrogation method is, e.g., in the case of a page or voice message, to map the area code and exchange number of the destination telephone number to a particular carrier. This is performed in the area code/exchange mapper 104, in communication with the message distribution center 102.

The WIG may determine the destination gateway by the area code and exchange of the destination device (NPA/NXX). For example, short messages to numbers beginning with 443994 are automatically routed to AT&T Wireless Services™. For devices with non-10 digit destination numbers (e.g., some pagers), standard numbers are prefixed to the actual destination in order to make it 10 digits.

In accordance with the principles of the present invention, once a carrier is determined from the short message, the preferred format and other carrier specific information is determined from a carrier format table 100. Then, given the carrier specific information obtained from the carrier format table 100, the messages are sent to a destination link 106 for transmission via the appropriate protocol to the appropriate destination via the Internet 110.

In the disclosed embodiments, the carrier format table 100 includes a carrier property configuration file or carrier format file, e.g., ‘GWDEST.properties’. The GWDEST.properties file is used to define carriers in a wireless short messaging system, together with the particular properties that go along with each carrier.

While the present embodiment describes a carrier property file named GWDEST.properties, the carrier format table may have any name within the scope of the present invention. The GWDEST.properties file specifies the various settings that are necessary to support a particular carrier.

The internal queue 120 simply sends messages to a generic Interface, which can be implemented in any number of ways. The interface defines basic messaging requirements, such as ‘sendTextMessage’ and ‘makeConnection’.

A WIG in accordance with the principles of the present invention is able to support multiple destinations (carriers) in an easily updatable fashion because the potential carrier destinations are internally abstracted away from their associated protocols. For the multi-carrier support feature in accordance with the principles of the present invention, the destination link interface 106 transparently routes short messages to other destination objects representing each possible peer gateway. Peer gateway objects are created from classes that capture the underlying protocol to use. For example, SMTP, HTTP Post and HTTP Get.

The carrier format table 100 configuration file preferably includes the universal resource locator (URL) and form field names, together with information regarding whether the carrier is communicated with, e.g., using HTTP GET, HTTP POST, or Email.

In the disclosed embodiment, carrier specific properties of all carriers in a network are entered into the carrier format table, e.g., into the GWDEST.properties file. The GWDEST.properties file may be updated on a periodic basis as necessary, without the need to affect other operations of the gateway.

The following is an example configuration file called GWDEST.properties, including destination information for seven (7) carriers. Of course, the principles of the present invention relate to a configuration file containing fewer or many, many more carrier entries, e.g., hundreds. Note that the number of entries for each carrier may change, depending upon the particular carrier.

numOfCarriers=7 0_className=tcs.ain.smsgw.gwdest.GWDestHttpGet 0_carrierName=AT 0_carrierNameLong=AirTouch 0_baseURL=http://webmsg.airtouch.com/cgi- bin/smspowerband_parse_genmail 0_maxLen=120 0_numFields=3 0_fieldNum0=min NUM 0_fieldNum1=callback from 0_fieldNum2=message MSG 1_className=tcs.ain.smsgw.gwdest.GWDestHttpGet 1_carrierName=AMT 1_carrierNameLong=Ameritech 1_baseURL=http://paging.acswireless.com/cgi-bin/page.cgi 1_maxLen=120 1_numFields=5 1_fieldNum0=miscVar template=paging 1_fieldNum1=miscVar email=httpd@ameritech.exmachina.comm 1_fieldNum2=min pin 1_fieldNum3=callback from 1_fieldNum4=message message 2_className=tcs.ain.smsgw.gwdest.GWDestHttpPost 2_carrierName=ATT 2_carrierNameLong=AT&T Wireless 2_baseURL=http://www.mobile.att.net/mc/mc_pagersend.cgi 2_maxLen=110 2_numFields=5 2_fieldNum0=miscVar htmlsource=nonMsg.html 2_fieldNum1=min pin 2_fieldNum2=miscVar returnpage=default 2_fieldNum3=callback from 2_fieldNum4=message message 3_className=tcs.ain.smsgw.gwdest.GWDestHttpGet 3_carrierName=BAM 3_carrierNameLong=Bell Atlantic Mobile 3_baseURL=http://www3.bam.com/cgi-bin/sms/sms.cgi 3_maxLen=120 3_numFields=5 3_fieldNum0=miscVar msg_type=messaging 3_fieldNum1=areaCode area_code 3_fieldNum2=exchange exchange 3_fieldNum3=extension extension 3_fieldNum4=message message 4_className=tcs.ain.smsgw.gwdest.GWDestHttpGet 4_carrierName=BS 4_carrierNameLong=BellSouth 4_baseURL=http://www.sms.bellsouth.com/sendnow.cgi 4_maxLen=155 4_numFields=2 4_fieldNum0=min min 4_fieldNum1=message msg 5_className=tcs.ain.smsgw.gwdest.GWDestEmail 5_carrierName=PB 5_carrierNameLong=PacBell 5_maxLen=110 5_baseURL=@pacbellpcs.net 5_appendDigits=1 6_className=tcs.ain.smsgw.gwdest.GWDestEmail 6_carrierName=OT 6_carrierNameLong=Omnipoint # append a ‘1‘ to the number for the email address 6_appendDigits=1 6_baseURL=@omnipoint.net 6_maxLen=60

To show the flexibility of the GWDEST.properties file, and the carrier format table 100 in general, the following is an alternative entry for carrier No. 6:

# This is the web page link for Omnipoint. #6_className=tcs.ain.smsgw.gwdest.GWDestHttpGet #6_carrierName=OT #6_carrierNameLong=OmniPoint #6_baseURL=http://www.omnipoint.com/cgi-bin/message.cgi #6_appendDigits=1 #6_maxLen=60 #6_numFields=2 #6_fieldNum0=min phone #6_fieldNum1=message message

Each carrier entry in the exemplary configuration file 100 may start with the carrier's ID number as set in an appropriate database.

The ClassName currently takes one of three forms, although additional forms may be possible. The ClassName relates to the method of communication to the relevant carrier.

In the disclosed embodiment, a ClassName of GWDestHttpGet indicates that the carrier communicates with an HTTP GET command, and handles carriers that use HTTP GET. A ClassName of GWDestHttpPost indicates that the carrier communicates with an HTTP POST command, and handled carriers that use HTTP POST. A ClassName of GWDestEmail indicates that the carrier communicates via Email, and handles carriers that use email.

The CarrierName parameter may be 2 or 3 letter code unique to the particular carrier.

The CarrierNameLong parameter may be the full proper name of the particular carrier.

The MaxLen parameter may be used to indicate the maximum length of the short message which may be supported by the relevant carrier.

The BaseURL parameter may be the URL used for messaging with the particular carrier.

The numFields parameter is the number of form fields that the carrier's messaging page has.

The format for the fieldNumX properties may be as follows:

X_fieldNumY=ourVariableName their VariableName, where ourVariableName can be any of the following types: min, callback, subject, message, priority, areaCode, exchange, extension, phoneNumber, and miscVar.

As disclosed, the carrier's variables are mapped into the variables of the sending carrier. The sub-parameter miscVar may be used for any variable that does not have a dynamically assigned value. When the URL is generated, it is spit out as is.

FIG. 2 shows an exemplary overview of message flow relating to the message distribution center shown in FIG. 1.

In particular, as shown in FIG. 2, a message is sent by the sender to one of the protocol receivers 130-132, as shown in message 201.

The relevant protocol receiver 130-132 adds the message to the queue 120, as shown in message 202.

In message 203, the message is forwarded by the queue 120 to the message distribution center 102.

The message distribution center 102 interrogates the message to determine the intended destination, and looks up the particular destination from an appropriate database, e.g., the area code/exchange mapper 104, as depicted in message 204.

In message 205, the message distribution center 102 delivers the message to the abstracted destination link 106, for delivery to the relevant destination.

The present invention focuses on the use of a carrier format table 100 by the destination link 106 to obtain the appropriate format for the destination carrier. In particular, “multi-carrier support” relates to the definition and use of special classes in the “Abstract Destination” (IGWSNLink) that know how to deliver messages to various “Peer” wireless internet gateways using, e.g., SMTP, HTTP, or other (even future) protocols.

FIG. 3 shows an exemplary destination link 106 and related modules of a wireless Internet gateway such as that shown in FIG. 1.

The destination link 106 includes a destination link cluster module 320, a Gateway destination link module called GWDestLink:IGWSNLink 330, a GWDestResource 340, and a Routing Database 350. The destination link 106 also includes peer modules, including a PeerDestination:IGWSNLink 360 which utilizes an appropriate format module, e.g., Email Dest:PeerGWDestination module 370 which communicates via email, Post Dest:PeerGWDestination module 380 which communicates via POST commands, and Get Dest:PeerGWDestination module 390 which communicates via GET commands.

As shown in FIG. 3, a message may be sent to the destination link GWDestLink 106. The message is sent using, e.g., a sendTextMes sage 301, to the GWDestLink 330.

The GWDestLink 330 aggregates many peer destinations. For instance, the GWDestLink 330 gets information from a GWDestResource 340, to create a peer destination, as shown in message 302. The GWDestResource 340 may be used to dynamically create peer destinations and to assign attributes such as which servers to communicate with, the format to use to communicate, etc.

As shown in message 304, the GWDestLink 330 forwards the message to the appropriate peer destination which is to handle transmission of the message to another gateway over the Internet 110 using the appropriate protocol, e.g., Email, HPPT post, etc., which in turn provide an appropriate message 305 a-305 c to the PeerDestination:IGWSNLink module 360.

FIG. 4 shows an exemplary implementation of the destination link and related modules shown in FIG. 3.

The enabling WIG technology disclosed here allows short messages (e.g., email, voice mail, HTTP post, etc.) to be transparently routed to the appropriate destination gateway using a configurable carrier format table. It also allows the message length to be formulated to reflect the destination, e.g., a 400-character message can be sent in whole to a Bell South IPS pager, whereas the same message would be split into 4 separate 100 characters messages when sent to a Sprint Phone.

While the invention has been described with reference to the exemplary embodiments thereof, those skilled in the art will be able to make various modifications to the described embodiments of the invention without departing from the true spirit and scope of the invention. 

What is claimed is:
 1. A method of routing a message between different carrier networks, comprising: receiving, at a physical message distribution center, an incoming text message from a wireless device of a first carrier network; resolving destination carrier information from a destination address in said incoming text message; retrieving destination carrier message format information from a carrier message format table comprising carrier specific format information for each possible destination carrier; routing said received message to an external destination carrier gateway selected based on carrier specific information maintained in said carrier message format table; and updating said carrier message format table to include an additional possible destination carrier.
 2. The method of routing a message between different carrier networks according to claim 1, further comprising: generating a peer destination class based on said carrier specific information maintained in said carrier message format table.
 3. The method of routing a message between different carrier networks according to claim 1, wherein: said carrier message format table is dynamically updateable.
 4. The method of routing a message between different carrier networks according to claim 1, wherein said carrier message format table comprises: a universal resource locator (URL) of a relevant destination carrier; form field information; and a communication protocol of said relevant destination carrier.
 5. The method of routing a message between different carrier networks according to claim 1, wherein: said text message is a short messaging system (SMS) text message.
 6. A method of routing a message between different carrier networks, comprising: receiving, at a physical message distribution center, an incoming text message from a wireless device of a first carrier network; resolving destination carrier information from a destination address in said incoming text message; retrieving destination carrier message format information from a carrier message format table comprising carrier specific format information for each possible destination carrier; routing said received message to an external destination carrier gateway selected based on carrier specific information maintained in said carrier message format table; and updating said carrier message format table to revise said carrier specific information maintained in said carrier message format table.
 7. The method of routing a message between different carrier networks according to claim 6, further comprising: generating a peer destination class based on said carrier specific information maintained in said carrier message format table.
 8. The method of routing a message between different carrier networks according to claim 6, wherein: said carrier message format table is dynamically updateable.
 9. The method of routing a message between different carrier networks according to claim 6, wherein said carrier message format table comprises: a universal resource locator (URL) of a relevant destination carrier; form field information; and a communication protocol of said external destination carrier gateway.
 10. The method of routing a message between different carrier networks according to claim 6, wherein: said text message is a short messaging system (SMS) text message.
 11. A method of routing a message between different carrier networks, comprising: extracting, from an incoming text message at a physical message distribution center, a destination address for said incoming message; accessing a carrier format table associating a plurality of different carriers serviced by said physical message distribution center gateway and network types and protocols of particular ones of said plurality of different carriers, to determine a physical destination carrier gateway of said plurality of different carriers that is associated with said destination address; and routing said incoming text message to said physical destination carrier gateway in accordance with information regarding said physical destination carrier gateway maintained in said carrier format table, said physical destination carrier gateway being selected for each incoming text message based on carrier specific information maintained in said carrier message format table.
 12. The method of routing a message between different carrier networks according to claim 11, wherein: said text message is a short messaging system (SMS) text message.
 13. The method of routing a message between different carrier networks according to claim 11, further comprising: generating a peer destination class based on information retrieved from said carrier format table.
 14. The method of routing a message between different carrier networks according to claim 11, wherein: said carrier format table is dynamically updateable.
 15. The method of routing a message between different carrier networks according to claim 11, wherein said carrier message format table comprises: a universal resource locator (URL) of a relevant destination carrier; form field information; and a communication protocol of said determined physical destination carrier gateway. 